package main

import (
	"fmt"
	"time"
)

func main() {
	//定义一个channel，无缓存，只能存放一个东西。会阻塞，只有取值完成之后，两个进程才会结束
	c := make(chan int)

	go func() {
		defer fmt.Println("goroutine结束")

		fmt.Println("goroutine 正在运行...")
		time.Sleep(3 * time.Second)
		c <- 666 //将666 发送给c
	}()
	fmt.Println("阻塞中。。。")
	num := <-c //从c中接受数据，并赋值给num
	fmt.Println("阻塞后。。。")
	fmt.Println("num = ", num)
	fmt.Println("main goroutine 结束...")
}
